import 'package:flutter/material.dart';
import 'package:xbaistack/net/http.dart';
import 'package:xbaistack/service/user_service.dart';
import 'package:xbaistack/widget/my_button.dart';

import '../widget/network_listener.dart';
import '../widget/state_view.dart';

class NetPage extends StatefulWidget {
  const NetPage({super.key});

  @override
  State<NetPage> createState() => _NetPageState();
}

class _NetPageState extends State<NetPage> {
  final _service = UserService();
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text("空页面")),
      body: SizedBox.expand(
        child: Column(
          children: [
            // NetWorkListener(
            //   // builder: (ctx) => const Center(child: Text("内容视图")),
            //   // 显示一个加载动画后再展示内容
            //   builder: (ctx) => StatusView(
            //     delayForTest: const Duration(milliseconds: 1200),
            //     builder: (ctx) {
            //       return const Center(child: Text("内容视图"));
            //     },
            //   ),
            // ),
            SizedBox(
              height: 100,
              child: Center(
                child: MyButtons(
                  text: '发送清',
                  type: ButtonType.SUCCESS,
                  onTap: () {
                    // _service.selectById('1').then((val) {
                    //   print(val);
                    // });
                    // Http.get('/user/all1')
                    //     .then((val) {
                    //       // print(val);
                    //     })
                    //     .catchError((err) {
                    //       print('错误信息-> ${err.message}');
                    //     });
                    _service.refresh();
                  },
                ),
              ),
            ),
            Expanded(
              child: _service.render(
                // 可以调用任何查询方法
                // 主键查询：select.selectById(...);
                // 分页查询：select.selectPageList(...);
                // 不同的查询方法返回值也不同，对应下面的 builder(...) 数据类型也不同
                future: () => _service.selectList(),
                builder: (users) {
                  return ListView.builder(
                    itemCount: users.length,
                    itemBuilder: (ctx, index) {
                      return Container(
                        color: Colors.primaries[index],
                        padding: const EdgeInsets.symmetric(
                          vertical: 10,
                          horizontal: 10,
                        ),
                        child: Text("用户：${users[index].nickname}"),
                      );
                    },
                  );
                },
              ),
            ),
          ],
        ),
      ),
    );
  }
}
